//package com.shwread.android.qysw.activity;
//
//import java.lang.reflect.Type;
//import java.util.List;
//
//import logic.bean.BalanceInfo;
//import logic.bean.BalancePasswordInfo;
//import logic.bean.OrderFoodListBean;
//import logic.bean.OrderTakeoutPayBean;
//import logic.bean.StoreInfo;
//import logic.constants.DefaultConsts;
//import logic.pay.PayResult;
//import logic.pay.PayUtil;
//import logic.util.MoneyUtil;
//import logic.util.Utils;
//
//import org.apache.http.Header;
//import org.geometerplus.zlibrary.core.application.SysApplication;
//import org.json.JSONException;
//import org.json.JSONObject;
//
//import android.content.Context;
//import android.content.Intent;
//import android.os.Bundle;
//import android.os.Handler;
//import android.os.Message;
//import android.text.TextUtils;
//import android.view.View;
//import android.view.View.OnClickListener;
//import android.widget.Button;
//import android.widget.CheckBox;
//import android.widget.CompoundButton;
//import android.widget.CompoundButton.OnCheckedChangeListener;
//import android.widget.ImageButton;
//import android.widget.LinearLayout;
//import android.widget.TextView;
//import android.widget.Toast;
//
//import com.google.gson.reflect.TypeToken;
//import com.shwread.android.qysw10000133.R;
//import com.shwread.android.ui.dialog.BalanceNotEnoughDialog;
//import com.shwread.android.ui.dialog.DatePickerListener;
//import com.shwread.android.ui.dialog.OMPayBalancePwdDialog;
//import com.shwread.http.ActionHelp;
//import com.shwread.http.base.Log;
//import com.shwread.http.base.ObjectHttpResponseHandler;
//
//
///**
// * OrderMenuPayMethodActivity
// *
// * @Description：支付方式界面
// * @Author：zhangdong
// * @Date：2015年6月17日上午11:02:13
// */
//public class OrderMenuPayMethodActivity
//        extends
//        BaseBusinessActivity
//        implements
//        OnClickListener,
//        OnCheckedChangeListener
//{
//	private Context                 context;
//	private TextView                tvTitle, tvCost, tvBalance, tvRemain;
//	private Button                  btnBack, btnPay;
//	private ImageButton             ibUseZhiFuBao;
//	private LinearLayout            llBalance, llZhifubao;
//	private CheckBox                cbBalance;
//	private boolean                 zhifubaoSelected = true;
//	private boolean                 truePwd          = false;
//	private OrderTakeoutPayBean     bean;
//	private List<OrderFoodListBean> foodList;
//	private int                     fromType;
//	private int                     money;
//	private long                    balance          = 0;
//	private String                  password;
//	private OMPayBalancePwdDialog   pwdDialog;
//	private long                    storeId;
//
//	@Override
//	protected void onCreate(Bundle savedInstanceState) {
//		super.onCreate(savedInstanceState);
//
//		setContentView(R.layout.om_pay_method);
//		SysApplication.getInstance().addActivity(this);
//		this.context = this;
//		initView();
//		initData();
//		setListener();
//	}
//
//	private Handler handler = new Handler()
//	                        {
//		                        @Override
//		                        public void handleMessage(Message msg) {
//			                        switch (msg.what) {
//										case PayUtil.SDK_PAY_FLAG: {
//											PayResult payResult = new PayResult((String) msg.obj);
//
//											// 支付宝返回此次支付结果及加签，建议对支付宝签名信息拿签约时支付宝提供的公钥做验签
//											String resultInfo = payResult.getResult();
//
//											String resultStatus = payResult.getResultStatus();
//
//											// 判断resultStatus 为“9000”则代表支付成功，具体状态码代表含义可参考接口文档
//											if (TextUtils.equals(resultStatus, "9000"))
//											{
//												Intent intent = new Intent(context, OrderMenuPayFinishActivity.class);
//												intent.putExtra(DefaultConsts.FROM_TYPE, fromType);
//												if (storeId != 0) intent.putExtra("storeId", storeId);
//												startActivity(intent);
//											}
//											else
//											{
//												// 判断resultStatus 为非“9000”则代表可能支付失败
//												// “8000”代表支付结果因为支付渠道原因或者系统原因还在等待支付结果确认，最终交易是否成功以服务端异步通知为准（小概率状态）
//												if (TextUtils.equals(resultStatus, "8000"))
//												{
//													Toast.makeText(context, "支付结果确认中", Toast.LENGTH_SHORT).show();
//
//												}
//												else
//												{
//													// 其他值就可以判断为支付失败，包括用户主动取消支付，或者系统返回的错误
//													Toast.makeText(context, "支付失败", Toast.LENGTH_SHORT).show();
//
//												}
//											}
//											break;
//										}
//										case PayUtil.SDK_CHECK_FLAG: {
//											Toast.makeText(context, "是否有支付宝认证账号：" + msg.obj, Toast.LENGTH_SHORT).show();
//											break;
//										}
//									}
//								}
//	                        };
//
//	private void setListener() {
//		btnBack.setOnClickListener(this);
//		ibUseZhiFuBao.setOnClickListener(this);
//		btnPay.setOnClickListener(this);
//		cbBalance.setOnCheckedChangeListener(this);
//	}
//
//	@Override
//	protected void onResume() {
//		super.onResume();
//		ActionHelp.qryUserBalance(context, new QryBalanceHandler());
//	}
//
//	private void initView() {
//		tvTitle = (TextView) findViewById(R.id.common_header_name);
//		tvTitle.setText("买单");
//		btnBack = (Button) findViewById(R.id.common_header_back);
//		btnBack.setVisibility(View.VISIBLE);
//
//		tvCost = (TextView) findViewById(R.id.tv_om_pay_method_cost);
//
//		llBalance = (LinearLayout) findViewById(R.id.ll_om_pay_method_balance);
//		cbBalance = (CheckBox) findViewById(R.id.cb_om_pay_method_balance);
//		cbBalance.setChecked(true);
//		cbBalance.setSelected(true);
//		tvBalance = (TextView) findViewById(R.id.tv_om_pay_method_balance);
//		llBalance.setVisibility(View.VISIBLE);
//
//		tvRemain = (TextView) findViewById(R.id.tv_om_pay_method_remain);
//
//		llZhifubao = (LinearLayout) findViewById(R.id.ll_om_pay_method_zhifubao);
//		ibUseZhiFuBao = (ImageButton) findViewById(R.id.ib_om_pay_method_zhifubao);
//
//		btnPay = (Button) findViewById(R.id.btn_om_pay_method_sure);
//	}
//
//	private void initData() {
//		pwdDialog = new OMPayBalancePwdDialog(OrderMenuPayMethodActivity.this, new UseBalanceListener());
//		fromType = getIntent().getIntExtra(DefaultConsts.FROM_TYPE, 0);
//		if (fromType == 1)
//		{
//			money = getIntent().getIntExtra("money", 0);
//			money *= 100;
//		}
//		else
//		{
//			bean = (OrderTakeoutPayBean) getIntent().getSerializableExtra("payBean");
//			foodList = (List<OrderFoodListBean>) getIntent().getSerializableExtra("foodList");
//			money = bean.getActualMoney();
//		}
//		storeId = getIntent().getLongExtra("storeId", 0);
//		tvCost.setText(Utils.getOneMoneyFormat(MoneyUtil.divide(money, 100)));
//		tvRemain.setText(Utils.getOneMoneyFormat(MoneyUtil.divide(money, 100)));
//	}
//
//	@Override
//	public void onClick(View v) {
//		switch (v.getId()) {
//			case R.id.common_header_back:
//				SysApplication.getInstance().finish();
//				this.finish();
//				break;
//			case R.id.ib_om_pay_method_zhifubao:
//				if (zhifubaoSelected)
//				{
//					zhifubaoSelected = false;
//					ibUseZhiFuBao.setBackgroundResource(R.drawable.om_pay_zhifubao_unselected);
//				}
//				else
//				{
//					cbBalance.setChecked(false);
//					zhifubaoSelected = true;
//					ibUseZhiFuBao.setBackgroundResource(R.drawable.om_pay_zhifubao_selected);
//				}
//				break;
//			case R.id.btn_om_pay_method_sure:
//				clickPay();
//				break;
//			default:
//				break;
//		}
//	}
//
//	private void clickPay() {
//		if (!cbBalance.isChecked() && !zhifubaoSelected)
//		{
//			Utils.showToast(context, "请选择支付方式");
//			return;
//		}
//		if (cbBalance.isChecked())
//		{
//			if (truePwd)
//			{
//				balancePay();
//			}
//			else
//			{
//				ActionHelp.checkPayPasswordExist(context, new HasPasswordHandler());
//			}
//		}
//		else
//		{
//			zhifubaoPay();
//		}
//	}
//
//	private class UseBalanceListener
//	        implements
//	        DatePickerListener
//	{
//
//		@Override
//		public void onSelect(String value) {
//			password = value;
//			balancePay();
//		}
//
//	}
//
//	@Override
//	public Handler getUIHandler() {
//		return handler;
//	}
//
//	@Override
//	public void onBackPressed() {
//		super.onBackPressed();
//		SysApplication.getInstance().finish();
//	}
//
//	@Override
//	public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) {
//		if (isChecked)
//		{
//			zhifubaoSelected = false;
//			ibUseZhiFuBao.setBackgroundResource(R.drawable.om_pay_zhifubao_unselected);
//			cbBalance.setSelected(true);
//			String remain = tvRemain.getText().toString();
//			if (Double.parseDouble(remain) < MoneyUtil.divide(balance, 100))
//			{
//				tvRemain.setText("0.00");
//				//				llZhifubao.setVisibility(View.GONE);
//				//				tvBalance.setText(Utils.getOneMoneyFormat(MoneyUtil.divide(money, 100)));
//			}
//			else
//			{
//				tvRemain.setText(Utils.getOneMoneyFormat(MoneyUtil.divide(money - balance, 100)));
//				llZhifubao.setVisibility(View.VISIBLE);
//				//				tvBalance.setText(Utils.getOneMoneyFormat(MoneyUtil.divide(balance, 100)));
//			}
//		}
//		else
//		{
//			cbBalance.setSelected(false);
//			tvRemain.setText(Utils.getOneMoneyFormat(MoneyUtil.divide(money, 100)));
//			llZhifubao.setVisibility(View.VISIBLE);
//			//			tvBalance.setText(Utils.getOneMoneyFormat(MoneyUtil.divide(balance, 100)));
//		}
//	}
//
//	private void balancePay() {
//		if (fromType == 1)
//		{
//			ActionHelp.payOrderByUserBalance(context, System.currentTimeMillis(), 1, password, new BalancePayHandler());
//		}
//		else
//		{
//			ActionHelp.payOrderByUserBalance(context, bean.getOrderId(), 1, password, new BalancePayHandler());
//		}
//	}
//
//	private void zhifubaoPay() {
//		String remain = tvRemain.getText().toString();
//		//		PayUtil.getSDKVersion(OrderMenuPayMethodActivity.this, getUIHandler());
//		//		PayUtil.check(OrderMenuPayMethodActivity.this, getUIHandler());
//		String orderInfo;
//		if (fromType == 1)
//		{
//			//orderInfo = PayUtil.getOrderInfo(String.valueOf(System.currentTimeMillis()), "扫码支付", "扫码支付", remain);
//			/** 一分钱测试 */
//			orderInfo = PayUtil.getOrderInfo(String.valueOf(System.currentTimeMillis()), "扫码支付", "扫码支付", "0.01");
//		}
//		else
//		{
//			StringBuffer buffer = new StringBuffer();
//			if (foodList != null && foodList.size() > 0)
//			{
//				for (int i = 0; i < foodList.size(); i++)
//				{
//					buffer.append(foodList.get(i).getFoodName()).append(" ");
//				}
//			}
//			else buffer.append("外卖支付");
//			//orderInfo = PayUtil.getOrderInfo(bean.getOrderSerial(), foodList.get(0).getFoodName(), buffer.toString(), remain);
//			/** 一分钱测试 */
//			orderInfo = PayUtil.getOrderInfo(bean.getOrderSerial(), bean.getOrderDesc(), buffer.toString(), "0.01");
//		}
//		PayUtil.pay(OrderMenuPayMethodActivity.this, getUIHandler(), orderInfo);
//	}
//
//	private class QryBalanceHandler
//	        extends
//	        ObjectHttpResponseHandler<BalanceInfo>
//	{
//		@Override
//		public void onFailure(int statusCode, Header[] headers, String responseString, Throwable throwable) {
//			Log.i(responseString);
//		}
//
//		@Override
//		public void onSuccess(int statusCode, Header[] headers, BalanceInfo object, String responseString) {
//			Log.i(responseString);
//			balance = object.getBalance();
//			tvBalance.setText(Utils.getOneMoneyFormat(MoneyUtil.divide(balance, 100)));
//			if (money <= balance)
//			{
//				tvRemain.setText("0.00");
//			}
//			else
//			{
//				tvRemain.setText(Utils.getOneMoneyFormat(MoneyUtil.divide(money - balance, 100)));
//			}
//			//			if (balance == 0)
//			//			{
//			//				llBalance.setVisibility(View.Gone);
//			//			}
//			//			else
//			//			{
//			//				llBalance.setVisibility(View.VISIBLE);
//			//			}
//		}
//
//		@Override
//		public Type getType() {
//			return new TypeToken<BalanceInfo>()
//			{
//			}.getType();
//		}
//	}
//
//	private class HasPasswordHandler
//	        extends
//	        ObjectHttpResponseHandler<BalancePasswordInfo>
//	{
//		@Override
//		public void onFailure(int statusCode, Header[] headers, String responseString, Throwable throwable) {
//			Log.i(responseString);
//			if (statusCode < 1000)
//			{
//				Utils.ToastShow(context, "网络错误");
//			}
//			else
//			{
//				Utils.ToastShow(context, "请求出错");
//			}
//		}
//
//		@Override
//		public void onSuccess(int statusCode, Header[] headers, BalancePasswordInfo object, String responseString) {
//			Log.i(responseString);
//			if (object.getIsExist().equals("y"))
//			{
//				String remain = tvRemain.getText().toString();
//				if (Double.parseDouble(remain) > 0)
//				{
//					new BalanceNotEnoughDialog(context).show();
//				}
//				else
//				{
//					pwdDialog.show();
//				}
//			}
//			else
//			{
//				Intent intent = new Intent(context, OrderMenuPaySetPasswordActivity.class);
//				startActivity(intent);
//			}
//		}
//
//		@Override
//		public Type getType() {
//			return new TypeToken<BalancePasswordInfo>()
//			{
//			}.getType();
//		}
//	}
//
//	private class BalancePayHandler
//	        extends
//	        ObjectHttpResponseHandler<String>
//	{
//		@Override
//		public void onFailure(int statusCode, Header[] headers, String responseString, Throwable throwable) {
//			Log.i(responseString);
//			if (statusCode == 9101 || statusCode == 9102)
//			{
//				try
//				{
//					JSONObject jsonObject = new JSONObject(responseString);
//					Utils.ToastShow(context, jsonObject.getString("returnObject"));
//					pwdDialog.reset();
//				}
//				catch (JSONException e)
//				{
//					// TODO Auto-generated catch block
//					e.printStackTrace();
//				}
//				return;
//			}
//			if (statusCode < 1000)
//			{
//				Utils.ToastShow(OrderMenuPayMethodActivity.this, "网络错误");
//			}
//			else
//			{
//				Utils.ToastShow(OrderMenuPayMethodActivity.this, "请求出错");
//			}
//		}
//
//		@Override
//		public void onSuccess(int statusCode, Header[] headers, String object, String responseString) {
//			Log.i(responseString);
//			pwdDialog.dismiss();
//			Intent intent = new Intent(context, OrderMenuPayFinishActivity.class);
//			intent.putExtra(DefaultConsts.FROM_TYPE, fromType);
//			if (storeId != 0) intent.putExtra("storeId", storeId);
//			startActivity(intent);
//		}
//
//		@Override
//		public Type getType() {
//			return new TypeToken<String>()
//			{
//			}.getType();
//		}
//	}
//}
